package com.jyw.system.utils;

import com.jyw.common.utils.StringUtils;
import com.jyw.common.utils.spring.SpringUtils;
import com.jyw.system.domain.SysFileInfo;
import com.jyw.system.domain.vo.SimpleFileVo;
import com.jyw.system.service.ISysFileInfoService;
import org.springframework.util.CollectionUtils;

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

/**
 * @author 沈峻
 * @ClassName FileUtils
 * @Description 文件工具类
 * @Date 2023/8/31 11:10
 **/
public class FileUtils {

    /**
     * 文件id转文件
     * @param fileId (字符串 1,2,3)
     * @return
     */
    public static List<SimpleFileVo> IdToFile(String fileId){
        if(StringUtils.isEmpty(fileId)){
            return null;
        }
        List<Long> collect = Arrays.stream(fileId.split(",")).map(data -> Long.valueOf(data)).collect(Collectors.toList());
        return getFileService().lambdaQuery().in(SysFileInfo::getId, collect).list().stream().map(SimpleFileVo::new).collect(Collectors.toList());
    }


    /**
     * 文件保存修改
     * @param list
     * @return
     */
    public static String fileToId(List<SimpleFileVo> list){
        if(CollectionUtils.isEmpty(list)){
            return StringUtils.EMPTY;
        }
        getFileService().updateBatchById(list.stream().map(data->{
            SysFileInfo info = new SysFileInfo();
            info.setId(data.getId());
            info.setName(data.getName());
            return info;
        }).collect(Collectors.toList()));
        return list.stream().map(data->data.getId().toString()).collect(Collectors.joining(","));
    }

    private static ISysFileInfoService getFileService(){
        return SpringUtils.getBean(ISysFileInfoService.class);
    }
}
